package com.syp.auth.service.base;

import java.util.List;

import org.springframework.data.domain.Page;

import com.syp.auth.domain.vo.UserVo;


/**
 * 用户业务处理接口
 * 
 * @author syp
 */
public interface UserServiceI {

	/**
	 * @desc 添加用户
	 * @param user
	 * @return
	 */
	public void add(UserVo user);

	/**
	 * @desc 删除用户
	 * @param user
	 */
	public void delete(long id);

	/**
	 * @desc 删除用户
	 * @param ids
	 * @param batch
	 */
	public void deleteBatch(List<Long> ids);

	/**
	 * @desc 编辑用户
	 * @param user
	 * @return
	 */
	public void edit(UserVo user);

	/**
	 * 根据用户id获取用户信息
	 * 
	 * @param id
	 * @return
	 */
	public UserVo get(Long id);

	/**
	 * @desc 用户列表
	 * @param user
	 * @return
	 */
	public Page<UserVo> pagelist(UserVo user);

	/**
	 * 编辑用户信息
	 * 
	 * @param user
	 */
	public void editUserInfo(UserVo user);

	/**
	 * 用户授权
	 * 
	 * @param user
	 */
	public void grant(UserVo user, List<Long> limitIds);

	/**
	 * 用户批量授权
	 * 
	 * @param user
	 */
	public void grantBatch(UserVo user, List<Long> limitIds);

	/**
	 * 检验用户代码是否唯一
	 * 
	 * @param newUserCode
	 * @return
	 */
	public boolean checkUserCodeUnique(String newUserCode);

	/**
	 * 校验用户原密码是否正确
	 * 
	 * @param id
	 * @param oldPassword
	 * @return
	 */
	public boolean checkOldPasswardCorrect(Long id, String oldPassword);

	/**
	 * 我的角色ID列表
	 * 
	 * @param myId
	 * @return
	 */
	public List<Long> myRoleIdList(Long myId);

	/**
	 * 我的资源ID列表
	 * 
	 * @param myId
	 * @return
	 */
	public List<Long> myResIdList(Long myId);

}
